'use strict';

const Service = require('egg').Service;

class ArticleDislikesService extends Service {

  // 对文章不喜欢
  async create(payload) {
    const { app, ctx } = this;
    const { article_id } = payload;
    const user_id = ctx.state.user.id;
    const isData = await app.model.ArticleDislikes.findOne({ where: { user_id, article_id } });
    if (isData) {
      const err = {};
      err.msg = '您已不喜欢过啦';
      return err;
    }
    return await app.model.ArticleDislikes.create({ user_id, article_id });
  }

  //  删除 取消点赞
  async del(article_id) {
    const { app, ctx } = this;
    const user_id = ctx.state.user.id;
    return await app.model.ArticleDislikes.destroy({ where: { article_id, user_id }, force: true });

  }

  // 获取列表 获取点赞列表
  // async getlist(payload) {
  //   const { app } = this;
  //   const Op = app.Sequelize.Op;
  //   const { pageNum = 1, pageSize = 10, article_id, user_id, status, begin_pubdate, end_pubdate } = payload;
  //   const where = {};
  //   if (article_id) { where.article_id = article_id; }// 根据文章id查询
  //   if (user_id) { where.user_id = user_id; }// 根据点赞用户id查询
  //   if (status) { where.status = status; }// 根据点赞状态查询
  //   if (begin_pubdate && end_pubdate) { // 根据时间查询
  //     where.createdAt = { [Op.between]: [ begin_pubdate, end_pubdate ] };
  //   }// 查询这个字段-xx之间  }
  //   try {
  //     const offset = (pageNum - 1) * pageSize;
  //     const { count, rows } = await app.model.ArticleLikings.findAndCountAll({
  //       where,
  //       order: [
  //         [ 'createdAt', 'desc' ],
  //       ],
  //       // include: [
  //       //   {
  //       //     model: this.app.model.Article,
  //       //     attributes: [ 'title' ], // 只显示哪些字段
  //       //     as: 'Likings_article',
  //       //   },
  //       //   {
  //       //     model: this.app.model.User,
  //       //     attributes: [ 'user_name', 'avatar' ], // 只显示哪些字段
  //       //     as: 'Likings_user',
  //       //   },
  //       //   {
  //       //     model: this.app.model.User,
  //       //     attributes: [ 'user_name', 'avatar' ], // 只显示哪些字段
  //       //     as: 'reply_user',
  //       //   },
  //       // {
  //       //   model: this.app.model.User,
  //       // as: 'Likings_user',
  //       //   attributes: [ 'user_name' ], // 只显示哪些字段
  //       //   // through: { attributes: [] }, // 排除中间表
  //       // },
  //       // ],
  //       // raw: true,
  //       offset,
  //       limit: pageSize * 1,

  //     });
  //     return {
  //       pageNum,
  //       pageSize,
  //       total: count,
  //       list: rows,
  //     };
  //   } catch (error) {
  //     console.error(error);
  //     return null;
  //   }
  // }


  // 根据id获取信息
  // async getInfo(article_id) {
  //   const { app, ctx } = this;
  //   const user_id = ctx.state.user.id;
  //   const isData = await app.model.ArticleLikings.findOne({ where: { user_id, article_id } });
  //   return isData;
  // }

  // 删除
  // async del(payload) {
  // const { app } = this;
  // const res = await app.model.ArticleLikings.findAll({
  //   where: { parentId: payload.ids },
  // });
  // console.log(res);
  // 如果当前删除id有回复
  // if (res.length > 0) {
  //   // this.ctx.helper.error('删除失败，当前评论下有回复', 400);
  //   const err = new Error('删除失败，当前评论下有回复。');
  //   err.parent = {};
  //   err.parent.errno = 1451;
  //   throw err;
  // }
  // return await app.model.ArticleLikings.destroy({ where: { id: payload.ids } });
  // }


  // 修改
  // async update(id, payload) {
  //   const { app } = this;
  //   return await app.model.ArticleLikings.update(payload, { where: { id } });
  // }


}

module.exports = ArticleDislikesService;
